package com.hunan.api.catv.service.impl;

import com.hunan.api.catv.entity.ServiceResult;

import java.util.List;

public interface BaseService<P, V, PK> {


    /**
     * 根据ID查询详情
     *
     * @param pk
     * @return
     */
    public V getById(PK pk);

    /**
     * 查询详情
     *
     * @param p
     * @return
     */
    public V get(P p);

    /**
     * 新增记录
     *
     * @param p
     * @return
     */
    public ServiceResult add(P p);


    /**
     * 更新记录
     *
     * @param p
     * @return
     */
    public ServiceResult update(P p);

    /**
     * 查询列表
     *
     * @param p
     * @return
     */
    public List<V> list(P p);

    /**
     * 列表ID
     *
     * @param p
     * @return
     */
    public List<PK> listIds(P p);

    /**
     * 删除记录
     *
     * @param pk
     * @return
     */
    public ServiceResult delete(PK pk);

    /**
     * 根据对象删除
     *
     * @param p
     * @return
     */
    public ServiceResult batchDelete(P p);

    /**
     * 批量添加
     *
     * @param list
     * @return
     */
    public ServiceResult batchAdd(List<P> list);

    /**
     * 批量修改
     *
     * @param list
     * @return
     */
    public ServiceResult batchUpdate(List<P> list);

    /**
     * 查询
     *
     * @param
     * @return 次数
     */
    public Integer count(P p);


    /**
     * 查询简单列表
     *
     * @param p
     * @return
     */
    public List<V> simpleList(P p);
}